home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3c / ctime.z / ctime
Text File  |  1998-10-20  |  23KB  |  263 lines

  1.  
  2.  
  3.  
  4. ccccttttiiiimmmmeeee((((3333CCCC))))                                                            ccccttttiiiimmmmeeee((((3333CCCC))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      _cccc_tttt_iiii_mmmm_eeee, _llll_oooo_cccc_aaaa_llll_tttt_iiii_mmmm_eeee, _gggg_mmmm_tttt_iiii_mmmm_eeee, _aaaa_ssss_cccc_tttt_iiii_mmmm_eeee, _tttt_zzzz_ssss_eeee_tttt, _cccc_tttt_iiii_mmmm_eeee______rrrr, _llll_oooo_cccc_aaaa_llll_tttt_iiii_mmmm_eeee______rrrr, _gggg_mmmm_tttt_iiii_mmmm_eeee______rrrr,
  10.      _aaaa_ssss_cccc_tttt_iiii_mmmm_eeee______rrrr - convert date and time to string
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_tttt_iiii_mmmm_eeee_...._hhhh_>>>>
  14.  
  15.      _cccc_hhhh_aaaa_rrrr _****_cccc_tttt_iiii_mmmm_eeee _((((_cccc_oooo_nnnn_ssss_tttt _tttt_iiii_mmmm_eeee______tttt _****_cccc_llll_oooo_cccc_kkkk_))))_;;;;
  16.  
  17.      _ssss_tttt_rrrr_uuuu_cccc_tttt _tttt_mmmm _****_llll_oooo_cccc_aaaa_llll_tttt_iiii_mmmm_eeee _((((_cccc_oooo_nnnn_ssss_tttt _tttt_iiii_mmmm_eeee______tttt _****_cccc_llll_oooo_cccc_kkkk_))))_;;;;
  18.  
  19.      _ssss_tttt_rrrr_uuuu_cccc_tttt _tttt_mmmm _****_gggg_mmmm_tttt_iiii_mmmm_eeee _((((_cccc_oooo_nnnn_ssss_tttt _tttt_iiii_mmmm_eeee______tttt _****_cccc_llll_oooo_cccc_kkkk_))))_;;;;
  20.  
  21.      _cccc_hhhh_aaaa_rrrr _****_aaaa_ssss_cccc_tttt_iiii_mmmm_eeee _((((_cccc_oooo_nnnn_ssss_tttt _ssss_tttt_rrrr_uuuu_cccc_tttt _tttt_mmmm _****_tttt_mmmm_))))_;;;;
  22.  
  23.      _eeee_xxxx_tttt_eeee_rrrr_nnnn _tttt_iiii_mmmm_eeee______tttt _tttt_iiii_mmmm_eeee_zzzz_oooo_nnnn_eeee_,,,, ______tttt_iiii_mmmm_eeee_zzzz_oooo_nnnn_eeee_,,,, _aaaa_llll_tttt_zzzz_oooo_nnnn_eeee_,,,, ______aaaa_llll_tttt_zzzz_oooo_nnnn_eeee_;;;;
  24.  
  25.      _eeee_xxxx_tttt_eeee_rrrr_nnnn _iiii_nnnn_tttt _dddd_aaaa_yyyy_llll_iiii_gggg_hhhh_tttt_,,,, ______dddd_aaaa_yyyy_llll_iiii_gggg_hhhh_tttt_;;;;
  26.  
  27.      _eeee_xxxx_tttt_eeee_rrrr_nnnn _cccc_hhhh_aaaa_rrrr _****_tttt_zzzz_nnnn_aaaa_mmmm_eeee_[[[[_2222_]]]]_,,,, _****______tttt_zzzz_nnnn_aaaa_mmmm_eeee_[[[[_2222_]]]]_;;;;
  28.  
  29.      _vvvv_oooo_iiii_dddd _tttt_zzzz_ssss_eeee_tttt _((((_vvvv_oooo_iiii_dddd_))))_;;;;
  30.  
  31.      _cccc_hhhh_aaaa_rrrr _****_cccc_tttt_iiii_mmmm_eeee______rrrr _((((_cccc_oooo_nnnn_ssss_tttt _tttt_iiii_mmmm_eeee______tttt _****_cccc_llll_oooo_cccc_kkkk_,,,, _cccc_hhhh_aaaa_rrrr _****_bbbb_uuuu_ffff_))))_;;;;
  32.  
  33.      _ssss_tttt_rrrr_uuuu_cccc_tttt _tttt_mmmm _****_llll_oooo_cccc_aaaa_llll_tttt_iiii_mmmm_eeee______rrrr _((((_cccc_oooo_nnnn_ssss_tttt _tttt_iiii_mmmm_eeee______tttt _****_cccc_llll_oooo_cccc_kkkk_,,,,
  34.           _ssss_tttt_rrrr_uuuu_cccc_tttt _tttt_mmmm _****_rrrr_eeee_ssss_uuuu_llll_tttt_))))_;;;;
  35.  
  36.      _ssss_tttt_rrrr_uuuu_cccc_tttt _tttt_mmmm _****_gggg_mmmm_tttt_iiii_mmmm_eeee______rrrr _((((_cccc_oooo_nnnn_ssss_tttt _tttt_iiii_mmmm_eeee______tttt _****_cccc_llll_oooo_cccc_kkkk_,,,,
  37.           _ssss_tttt_rrrr_uuuu_cccc_tttt _tttt_mmmm _****_rrrr_eeee_ssss_uuuu_llll_tttt_))))_;;;;
  38.  
  39.      _cccc_hhhh_aaaa_rrrr _****_aaaa_ssss_cccc_tttt_iiii_mmmm_eeee______rrrr _((((_cccc_oooo_nnnn_ssss_tttt _ssss_tttt_rrrr_uuuu_cccc_tttt _tttt_mmmm _****_tttt_mmmm_,,,, _cccc_hhhh_aaaa_rrrr _****_bbbb_uuuu_ffff_))))_;;;;
  40.  
  41. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  42.      _cccc_tttt_iiii_mmmm_eeee, _cccc_tttt_iiii_mmmm_eeee______rrrr, _llll_oooo_cccc_aaaa_llll_tttt_iiii_mmmm_eeee, _llll_oooo_cccc_aaaa_llll_tttt_iiii_mmmm_eeee______rrrr, _gggg_mmmm_tttt_iiii_mmmm_eeee, and _gggg_mmmm_tttt_iiii_mmmm_eeee______rrrr accept
  43.      arguments of type _tttt_iiii_mmmm_eeee______tttt, pointed to by _cccc_llll_oooo_cccc_kkkk, representing the time in
  44.      seconds since 00:00:00 UTC, January 1, 1970.  _cccc_tttt_iiii_mmmm_eeee and _cccc_tttt_iiii_mmmm_eeee______rrrr return a
  45.      pointer to a 26-character string as shown below.  Time zone and daylight
  46.      savings corrections are made before the string is generated.  The fields
  47.      are constant in width:
  48.  
  49.            Fri Sep 13 00:00:00 1986\n\0
  50.  
  51.      _llll_oooo_cccc_aaaa_llll_tttt_iiii_mmmm_eeee, _llll_oooo_cccc_aaaa_llll_tttt_iiii_mmmm_eeee______rrrr, _gggg_mmmm_tttt_iiii_mmmm_eeee, and _gggg_mmmm_tttt_iiii_mmmm_eeee______rrrr return pointers to _tttt_mmmm
  52.      structures, described below.  _llll_oooo_cccc_aaaa_llll_tttt_iiii_mmmm_eeee and _llll_oooo_cccc_aaaa_llll_tttt_iiii_mmmm_eeee______rrrr correct for the
  53.      main time zone and possible alternate (``daylight savings'') time zone;
  54.      _gggg_mmmm_tttt_iiii_mmmm_eeee and _gggg_mmmm_tttt_iiii_mmmm_eeee______rrrr convert directly to Coordinated Universal Time (UTC),
  55.      which is the time the UNIX system uses internally.
  56.  
  57.      _aaaa_ssss_cccc_tttt_iiii_mmmm_eeee and _aaaa_ssss_cccc_tttt_iiii_mmmm_eeee______rrrr convert a _tttt_mmmm structure to a 26-character string, as
  58.      shown in the above example, and returns a pointer to the string.
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ccccttttiiiimmmmeeee((((3333CCCC))))                                                            ccccttttiiiimmmmeeee((((3333CCCC))))
  71.  
  72.  
  73.  
  74.      Declarations of all the functions and externals, and the _tttt_mmmm structure,
  75.      are in the _tttt_iiii_mmmm_eeee_...._hhhh header file.  The structure declaration is:
  76.  
  77.           _ssss_tttt_rrrr_uuuu_cccc_tttt    _tttt_mmmm _{{{{
  78.                _iiii_nnnn_tttt  _tttt_mmmm______ssss_eeee_cccc_;;;;   _////_**** _ssss_eeee_cccc_oooo_nnnn_dddd_ssss _aaaa_ffff_tttt_eeee_rrrr _tttt_hhhh_eeee _mmmm_iiii_nnnn_uuuu_tttt_eeee _---- _[[[[_0000_,,,, _6666_1111_]]]] _****_////
  79.                                    _////_**** _ffff_oooo_rrrr _llll_eeee_aaaa_pppp _ssss_eeee_cccc_oooo_nnnn_dddd_ssss _****_////
  80.                _iiii_nnnn_tttt  _tttt_mmmm______mmmm_iiii_nnnn_;;;;   _////_**** _mmmm_iiii_nnnn_uuuu_tttt_eeee_ssss _aaaa_ffff_tttt_eeee_rrrr _tttt_hhhh_eeee _hhhh_oooo_uuuu_rrrr _---- _[[[[_0000_,,,, _5555_9999_]]]] _****_////
  81.                _iiii_nnnn_tttt  _tttt_mmmm______hhhh_oooo_uuuu_rrrr_;;;;  _////_**** _hhhh_oooo_uuuu_rrrr _ssss_iiii_nnnn_cccc_eeee _mmmm_iiii_dddd_nnnn_iiii_gggg_hhhh_tttt _---- _[[[[_0000_,,,, _2222_3333_]]]] _****_////
  82.                _iiii_nnnn_tttt  _tttt_mmmm______mmmm_dddd_aaaa_yyyy_;;;;  _////_**** _dddd_aaaa_yyyy _oooo_ffff _tttt_hhhh_eeee _mmmm_oooo_nnnn_tttt_hhhh _---- _[[[[_1111_,,,, _3333_1111_]]]] _****_////
  83.                _iiii_nnnn_tttt  _tttt_mmmm______mmmm_oooo_nnnn_;;;;   _////_**** _mmmm_oooo_nnnn_tttt_hhhh_ssss _ssss_iiii_nnnn_cccc_eeee _JJJJ_aaaa_nnnn_uuuu_aaaa_rrrr_yyyy _---- _[[[[_0000_,,,, _1111_1111_]]]] _****_////
  84.                _iiii_nnnn_tttt  _tttt_mmmm______yyyy_eeee_aaaa_rrrr_;;;;  _////_**** _yyyy_eeee_aaaa_rrrr_ssss _ssss_iiii_nnnn_cccc_eeee _1111_9999_0000_0000 _****_////
  85.                _iiii_nnnn_tttt  _tttt_mmmm______wwww_dddd_aaaa_yyyy_;;;;  _////_**** _dddd_aaaa_yyyy_ssss _ssss_iiii_nnnn_cccc_eeee _SSSS_uuuu_nnnn_dddd_aaaa_yyyy _---- _[[[[_0000_,,,, _6666_]]]] _****_////
  86.                _iiii_nnnn_tttt  _tttt_mmmm______yyyy_dddd_aaaa_yyyy_;;;;  _////_**** _dddd_aaaa_yyyy_ssss _ssss_iiii_nnnn_cccc_eeee _JJJJ_aaaa_nnnn_uuuu_aaaa_rrrr_yyyy _1111 _---- _[[[[_0000_,,,, _3333_6666_5555_]]]] _****_////
  87.                _iiii_nnnn_tttt  _tttt_mmmm______iiii_ssss_dddd_ssss_tttt_;;;; _////_**** _ffff_llll_aaaa_gggg _ffff_oooo_rrrr _aaaa_llll_tttt_eeee_rrrr_nnnn_aaaa_tttt_eeee _dddd_aaaa_yyyy_llll_iiii_gggg_hhhh_tttt _****_////
  88.                                    _////_**** _ssss_aaaa_vvvv_iiii_nnnn_gggg_ssss _tttt_iiii_mmmm_eeee _****_////
  89.           _}}}}_;;;;
  90.  
  91.      The value of _tttt_mmmm______iiii_ssss_dddd_ssss_tttt is positive if daylight savings time is in effect,
  92.      zero if daylight savings time is not in effect, and negative if the
  93.      information is not available. (Previously, the value of _tttt_mmmm______iiii_ssss_dddd_ssss_tttt was
  94.      defined as non-zero if daylight savings time was in effect.)
  95.  
  96.      _cccc_tttt_iiii_mmmm_eeee, _gggg_mmmm_tttt_iiii_mmmm_eeee, _aaaa_ssss_cccc_tttt_iiii_mmmm_eeee, and _llll_oooo_cccc_aaaa_llll_tttt_iiii_mmmm_eeee all return pointers to static data
  97.      which are overwritten on each call.  Reentrant versions of these
  98.      functions are also available as _n_a_m_e______rrrr.  The parameter _bbbb_uuuu_ffff to _aaaa_ssss_cccc_tttt_iiii_mmmm_eeee______rrrr
  99.      and _cccc_tttt_iiii_mmmm_eeee______rrrr specify a character buffer where the resultant string should
  100.      be placed.  This buffer should be at least 26 characters long.  The
  101.      parameter _rrrr_eeee_ssss_uuuu_llll_tttt to _gggg_mmmm_tttt_iiii_mmmm_eeee______rrrr and _llll_oooo_cccc_aaaa_llll_tttt_iiii_mmmm_eeee______rrrr points to where the
  102.      resultant broken-down time is placed.  These two functions always return
  103.      a pointer to that same structure.
  104.  
  105.      The external _tttt_iiii_mmmm_eeee______tttt variable _aaaa_llll_tttt_zzzz_oooo_nnnn_eeee contains the difference, in seconds,
  106.      between Coordinated Universal Time and the alternate time zone.  The
  107.      external variable _tttt_iiii_mmmm_eeee_zzzz_oooo_nnnn_eeee contains the difference, in seconds, between
  108.      UTC and local standard time. The external variable _dddd_aaaa_yyyy_llll_iiii_gggg_hhhh_tttt indicates
  109.      whether time should reflect daylight savings time.  Both _tttt_iiii_mmmm_eeee_zzzz_oooo_nnnn_eeee and
  110.      _aaaa_llll_tttt_zzzz_oooo_nnnn_eeee default to 0 (UTC).  The external variable _dddd_aaaa_yyyy_llll_iiii_gggg_hhhh_tttt is non-zero
  111.      if an alternate time zone exists.  The time zone names are contained in
  112.      the external variable _tttt_zzzz_nnnn_aaaa_mmmm_eeee, which by default is set to:
  113.  
  114.           _cccc_hhhh_aaaa_rrrr _****_tttt_zzzz_nnnn_aaaa_mmmm_eeee_[[[[_2222_]]]] _==== _{{{{ _""""_GGGG_MMMM_TTTT_""""_,,,, _""""   _"""" _}}}}_;;;;
  115.  
  116.      Each of these global variables have an alias which makes the variable
  117.      names ANSI compliant.  The alias refers to the same storage location and
  118.      is identified by preceding the name of the variable with an underscore
  119.      '_'.
  120.  
  121.      These functions know about the peculiarities of this conversion for
  122.      various time periods for the U.S.  (specifically, the years 1974, 1975,
  123.      and 1987).  They will handle the new daylight savings time starting with
  124.      the first Sunday in April, 1987.
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ccccttttiiiimmmmeeee((((3333CCCC))))                                                            ccccttttiiiimmmmeeee((((3333CCCC))))
  137.  
  138.  
  139.  
  140.      _tttt_zzzz_ssss_eeee_tttt uses the contents of the environment variable _TTTT_ZZZZ to override the
  141.      value of the different external variables.  It also sets the external
  142.      variable _dddd_aaaa_yyyy_llll_iiii_gggg_hhhh_tttt to zero if Daylight Savings Time conversions should
  143.      never be applied for the time zone in use; otherwise, non-zero.  _tttt_zzzz_ssss_eeee_tttt is
  144.      called by _aaaa_ssss_cccc_tttt_iiii_mmmm_eeee and _aaaa_ssss_cccc_tttt_iiii_mmmm_eeee______rrrr and may also be called by the user.  See
  145.      _eeee_nnnn_vvvv_iiii_rrrr_oooo_nnnn(5) for a description of the _TTTT_ZZZZ environment variable.
  146.  
  147.      _tttt_zzzz_ssss_eeee_tttt scans the contents of the environment variable and assigns the
  148.      different fields to the respective variable.  For example, the most
  149.      complete setting for New Jersey in 1986 could be
  150.  
  151.           _EEEE_SSSS_TTTT_5555_EEEE_DDDD_TTTT_4444_,,,,_1111_1111_6666_////_2222_::::_0000_0000_::::_0000_0000_,,,,_2222_9999_8888_////_2222_::::_0000_0000_::::_0000_0000
  152.  
  153.      or simply
  154.  
  155.            _EEEE_SSSS_TTTT_5555_EEEE_DDDD_TTTT
  156.  
  157.      An example of a southern hemisphere setting such as the Cook Islands
  158.      could be
  159.  
  160.            _KKKK_DDDD_TTTT_9999_::::_3333_0000_KKKK_SSSS_TTTT_1111_0000_::::_0000_0000_,,,,_6666_3333_////_5555_::::_0000_0000_,,,,_3333_0000_2222_////_2222_0000_::::_0000_0000
  161.  
  162.      In the longer version of the New Jersey example of _TTTT_ZZZZ_,,,, _tttt_zzzz_nnnn_aaaa_mmmm_eeee[_0] is EST,
  163.      _tttt_iiii_mmmm_eeee_zzzz_oooo_nnnn_eeee will be set to 5*60*60, _tttt_zzzz_nnnn_aaaa_mmmm_eeee[_1] is EDT, _aaaa_llll_tttt_zzzz_oooo_nnnn_eeee will be set to
  164.      4*60*60, the starting date of the alternate time zone is the 117th day at
  165.      2 AM, the ending date of the alternate time zone is the 299th day at 2 AM
  166.      (using zero-based Julian days), and _dddd_aaaa_yyyy_llll_iiii_gggg_hhhh_tttt will be set positive.
  167.      Starting and ending times are relative to the alternate time zone.  If
  168.      the alternate time zone start and end dates and the time are not
  169.      provided, the days for the United States that year will be used and the
  170.      time will be 2 AM.  If the start and end dates are provided but the time
  171.      is not provided, the time will be 2 AM.  _tttt_zzzz_ssss_eeee_tttt changes the values of the
  172.      external variables _tttt_iiii_mmmm_eeee_zzzz_oooo_nnnn_eeee, _aaaa_llll_tttt_zzzz_oooo_nnnn_eeee, _dddd_aaaa_yyyy_llll_iiii_gggg_hhhh_tttt, and _tttt_zzzz_nnnn_aaaa_mmmm_eeee.  _cccc_tttt_iiii_mmmm_eeee,
  173.      _llll_oooo_cccc_aaaa_llll_tttt_iiii_mmmm_eeee, _mmmm_kkkk_tttt_iiii_mmmm_eeee, and _ssss_tttt_rrrr_ffff_tttt_iiii_mmmm_eeee will also update these external variables
  174.      as if they had called _tttt_zzzz_ssss_eeee_tttt at the time specified by the _tttt_iiii_mmmm_eeee______tttt or _ssss_tttt_rrrr_uuuu_cccc_tttt
  175.      _tttt_mmmm value that they are converting.
  176.      Note that in most installations, _TTTT_ZZZZ is set to the correct value by
  177.      default when the user logs on, via the local _////_eeee_tttt_cccc_////_pppp_rrrr_oooo_ffff_iiii_llll_eeee file [see
  178.      _pppp_rrrr_oooo_ffff_iiii_llll_eeee(4) and _tttt_iiii_mmmm_eeee_zzzz_oooo_nnnn_eeee(4)].
  179.  
  180. EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
  181.      This example returns a string containing the current date and time using
  182.      any locally set timezone information:
  183.                _tttt_iiii_mmmm_eeee______tttt _tttt_;;;;
  184.                _cccc_hhhh_aaaa_rrrr _****_cccc_;;;;
  185.                _tttt _==== _tttt_iiii_mmmm_eeee_((((_NNNN_UUUU_LLLL_LLLL_))))_;;;;
  186.                _cccc _==== _aaaa_ssss_cccc_tttt_iiii_mmmm_eeee_((((_llll_oooo_cccc_aaaa_llll_tttt_iiii_mmmm_eeee_((((_&&&&_tttt_))))_))))_;;;;
  187.  
  188.  
  189.  
  190.  
  191.                                                                         PPPPaaaaggggeeee 3333
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198. ccccttttiiiimmmmeeee((((3333CCCC))))                                                            ccccttttiiiimmmmeeee((((3333CCCC))))
  199.  
  200.  
  201.  
  202. DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  203. FFFFIIIILLLLEEEESSSS
  204.      _////_uuuu_ssss_rrrr_////_llll_iiii_bbbb_////_llll_oooo_cccc_aaaa_llll_eeee_////_l_a_n_g_u_a_g_e_////_LLLL_CCCC______TTTT_IIII_MMMM_EEEE - file containing locale specific date
  205.      and time information
  206.  
  207. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  208.      _tttt_iiii_mmmm_eeee(2), _gggg_eeee_tttt_eeee_nnnn_vvvv(3C), _mmmm_kkkk_tttt_iiii_mmmm_eeee(3C), _pppp_uuuu_tttt_eeee_nnnn_vvvv(3C), _pppp_rrrr_iiii_nnnn_tttt_ffff(3S), _ssss_eeee_tttt_llll_oooo_cccc_aaaa_llll_eeee(3C),
  209.      _ssss_tttt_rrrr_ffff_tttt_iiii_mmmm_eeee(3C), _cccc_ffff_tttt_iiii_mmmm_eeee(4), _pppp_rrrr_oooo_ffff_iiii_llll_eeee(4), _tttt_iiii_mmmm_eeee_zzzz_oooo_nnnn_eeee(4), _eeee_nnnn_vvvv_iiii_rrrr_oooo_nnnn(5).
  210.  
  211. NNNNOOOOTTTTEEEESSSS
  212.      The return values for _cccc_tttt_iiii_mmmm_eeee, _llll_oooo_cccc_aaaa_llll_tttt_iiii_mmmm_eeee, and _gggg_mmmm_tttt_iiii_mmmm_eeee point to static data
  213.      whose content is overwritten by each call.
  214.  
  215.      Setting the time during the interval of change from _tttt_iiii_mmmm_eeee_zzzz_oooo_nnnn_eeee to _aaaa_llll_tttt_zzzz_oooo_nnnn_eeee
  216.      or vice versa can produce unpredictable results.  The system
  217.      administrator must change the Julian start and end days annually.
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.                                                                         PPPPaaaaggggeeee 4444
  258.  
  259.  
  260.  
  261.